Many wireless communication devices, including simple cellular telephones, so-called smart phones, and wireless tablet devices, include a cellular modem device. A cellular modem device of a particular type (e.g., from a particular manufacturer and/or for a particular radio access technology) may be used in many different types of products. As a result, the integration of the modem device into these various products can put a variety of dissimilar requirements on the modem device's interfaces.
FIG. 1 illustrates several dimensions of these varying requirements. The interface to the modem device may work with any one or more of several physical interfaces, such as the Universal Serial Bus (USB), the USB High-Speed Inter-Chip (HSIC) interface, the USB Super-Speed Inter-Chip (SSIC), The Peripheral Component Interconnect express (PCIe) interface, and the Low Latency Interface (LLI). The modem interface shall also be compatible with a variety of different application processors, e.g., the application processors in smartphones or tablet computers, the CPUs in desktop or laptop computers, and control systems of various types in Machine-to-Machine (M2M) applications. Finally, the modem interface shall work with different operating systems, such as Linux, Windows, OS X, and various real-time operating systems.
A common denominator for all physical interfaces, all applications processors, and most operating systems is a general ability to handle Ethernet devices. It is possible to emulate an Ethernet interface on all these physical interfaces and all application processors, and most operating systems handle Ethernet devices. A natural choice is thus to expose the modem as an Ethernet interface and hide all differences between various physical interfaces below Ethernet.
This exposure of the modem device to application processors as an Ethernet device is illustrated in FIG. 2. As suggested by the figure, the modem device may support interconnections to the applications processor via any of several physical interfaces, such as USB 2.0, HSIC, SSIC, LLI, and PCIe. An Ethernet layer sits on top of each of these physical interfaces, allowing an applications processor that supports any one or more of these physical interfaces to communicate with the modem device at the Ethernet layer, i.e., using Ethernet frames. As seen in the figure, the Ethernet layer sits on top of a Network Control Model (NCM) layer and a Communications Device Class (CDC) layer for the USB-related physical interfaces (USB 2.0, HSIC, and SSIC), and sits on top of a shared memory for the LLI and PCIe physical interfaces.
Another common denominator for all application processors and most operating systems is the ability to handle an Internet Protocol (IP) socket applications programming interface (API). A natural choice, therefore, is for the modem device to expose all modem services to the application processor on an IP socket API to the application processor. This is shown in FIG. 3, where several modem services, including a control channel for modem control (e.g., using so-called AT commands), debugging, and logging services are provided to an application processor device via a TCP/UDP layer and an IP layer, on top of the Ethernet interface discussed above. With this configuration, a local IP network between the modem device and the application processor is used to expose modem services to the application processor, on an IP socket API. This is shown generally in the block diagram of FIG. 4.